По многочисленным просьбам общественности написал скрипт импорта в miniShop2 из CSV. У нас уже проскакивало несколько вариантов, но все они как то не очень.

Особенности:
  1. Это не сниппет, это самодостаточный скрипт.
  2. Использует процессоры для импорта ресурсов и изображений.
  3. Умеет обновлять ресурсы по указанному ключевому полю.
  4. Поддерживает ТВ параметры и поля товаров, включая JSON типа size и color.
  5. Есть режим отладки, с подробным логом и обработкой только первой строки файла.
  6. Выводит сообщения через системный лог.
Теретически, можно импортировать не только товары, но и категории или другие ресурсы, но не проверял.

Скрипт входит в состав miniShop2 с версии 2.1.4 и лежит в /core/components/minishop2/import/csv.php. Запускать его можно как из браузера (если у вас открыта директория core), так и из консоли.

Если захотите его перенести в другое, более подходящее место, то нужно отредактировать строку
require_once dirname(dirname(dirname(dirname(__FILE__)))) . '/config/config.inc.php';
и указать другой путь для получения config.inc.php.

Если вы запускаете скрипт из core, и вообще, если у вас открыта core всем гостям — то вы сам себе злобный буратина. Это небесопасно, я вас предупредил!

Параметры

Параметры можно указывать двумя путями: через командную строку и через массивы $_GET или $_POST
  • file — путь к импортируемому файлу, от корня сайта. Например «core/import/file.csv»
  • fields — строка с полями испортируемого файла.
    Здесь нужно перечислить имена, как они идут в файле. Например: «alias,article,pagetitle,price,image,discount».
    В параметре и файле можно использовать не только поля ресурса, но и:
    • Массивы свойств товара: «size,size,size,color,color»
    • Изображения для галереи: «gallery,gallery,gallery»
    • ТВ параметры (слово «tv» + id параметра): «tv1,tv2,tv3»
  • update — указывает, нужно ли обновлять ресурсы. Значения 1 или 0.
  • key — если включено обновление, обязательно нужно указать ключ товара, по которому определяется его уникальность. Например «article».
  • debug — Режим отладки. Если = 1, то скрипт подробно обрабатывает первую строку файла и выходит.
  • delimeter — Разделитель колонок в csv файле, по умолчанию ";".
Если вы загружаете изображения в галерею, я рекомендую указать товарам id медиа источника source, чтобы не получить кучу картинок в корне сайта.

Примеры

Импорт через консоль:
php ./core/components/minishop2/import/csv.php "file.csv" "article,pagetitle,tv1,size,size,gallery,gallery,tv3" 1 "article" 1 "|"
Импорт через браузер
http://mysite.com/core/components/minishop2/import/csv.php?file=file.csv&fields=article,pagetitle,tv1,size,size,gallery,gallery,tv3&update=1&key=article&debug=1&delimeter=|
В конце работы скрипт выведет статистику и ошибки, если есть.

Наверх, в раздел
Импорт и экспорт
Наверх, в раздел
Импорт и экспорт

Комментарии (113)

  1. Владимир Колесник 13 декабря 2013, 13:54 # ↓ 0
    Круто конечно!
    Но мне кажется это очень сложновато будет для клиентов ;)
    1. Василий Наумкин 13 декабря 2013, 14:08 # ↑ ↓ 0
      А это и не для клиентов, это для программистов.

      Построил сайт, настроил импорт, добавил в cron и скачал клиенту, куда класть файл.
      Ну или написал свою простенькую обвязку для загрузки.

      А для клиентов когда-нибудь сделаю отдельный компонент.
      1. Андрей, Омск 11 февраля 2014, 11:14 # ↑ ↓ 0
        Василий, приветствую вас!
        Есть вопрос по импорту товаров из CSV.

        Как создается alias для товара при обновлении? Я так понимаю, что это процессор делает? Дело в том, что после запуска скрипта алиасы на категориях товаров переписались из транслита в обычные с русскими буквами.

        Дружественные УРЛ на сайте настроены.
        Установлен ytranslit.
        Что нужно поправить в скрипте (или может, еще где) чтобы алиасы все же транслитом прописывались.
        Благодарю за ответ.
        1. Андрей, Омск 11 февраля 2014, 11:22 # ↑ ↓ 0
          Похоже, разобрался:
          [yTranslit] Service returned an error. Array
          (
              [code] => 403
              [message] => Limit of daily requests exceeded
          )
          1. Василий Наумкин 11 февраля 2014, 11:28 # ↑ ↓ 0
            Это ж ты сколько наимпортировал за день?
            1. Андрей, Омск 12 февраля 2014, 06:52 # ↑ ↓ 0
              На самом деле, совсем немного. Но от этого еще больше вопросов:

              1. В файле порядка 3000 товаров. 90% из них — уже существующие в каталоге minishop2.
              2. Где-то тут на сайте читал, что алиасы генерируются только при создании ресурса, но не при обновлении.
              3. Если я проводил импорт 3-4 раза за вчерашний день (отлаживал) и новых объектов порядка 10%, то по-любому я не мог перевалить за лимиты Яндекса…

              Отсюда вопрос к Василию — подскажите пожалуйста, где посмотреть, чтобы убедиться, что при update товара действительно не происходит обращения к Яндексу?

              Спасибо.
              1. Василий Наумкин 12 февраля 2014, 07:34 # ↑ ↓ 0
                Псевдоним генерируется каждый раз, так что при отладке лучше включать обычный translit.
    2. Сергей 13 декабря 2013, 17:08 # ↓ 0
      &key=articledebug=1&delimeter=|
      Опечатка, пропустили &.
      1. Василий Наумкин 13 декабря 2013, 17:15 # ↑ ↓ 0
        Поправил, спасибо!
      2. Ilya Ev 13 декабря 2013, 17:43 # ↓ 0
        Здорово, тоже написал свой вариантик а тут готовое решение))

        Василий а родитель где лежат товары указываем в файле и в параметре fields=parent?
        1. Василий Наумкин 13 декабря 2013, 18:08 # ↑ ↓ 0
          Да, конечно.

          Можно указывать абсолютно любые поля ресурса, включая class_key и context_key.
        2. Пашкович Дмитрий 13 декабря 2013, 18:59 # ↓ 0
          Великолепно!
          Это именно то, что я очень давно жду. Сделано супер, Василию огромное спасибо!
          1. Василий Наумкин 13 декабря 2013, 19:18 # ↑ ↓ 0
            На здоровье!
          2. Виталий Батушев 13 декабря 2013, 22:00 # ↓ 0
            После обновления до 2.1.4 при сохранении товара стала постоянно включаться галочка на пункте «Показывать в дереве», ну и, соответственно, включается показ в дереве.
            Кэш чистил. Толку ноль. Сохранил товар — галочка включилась, товар нарисовался в дереве.
            1. Василий Наумкин 13 декабря 2013, 22:08 # ↑ ↓ 0
              Я в админке давно ничего не менял. Вряд ли проблема в обновлении.

              На моих сайтах, понятно, все в порядке.
              1. Виталий Батушев 13 декабря 2013, 22:16 # ↑ ↓ 0
                Да, виноват, моя вина, решил посмотреть, что за компонент Collections (из официального репозитория), это он чудил.
                1. Василий Наумкин 13 декабря 2013, 22:17 # ↑ ↓ 0
                  Для этого есть modx-test.com — чтобы не ломать рабочие сайты.
                  1. Виталий Батушев 13 декабря 2013, 22:31 # ↑ ↓ 0
                    Слава богу, не рабочий сайт, в процессе.
            2. Роман 22 декабря 2013, 18:27 # ↓ 0
              Делаю все как написано, в конце импорта вылазят ошибки.
              Запускаю из браузера так:
              http://cайт.ru/core/components/minishop2/import/csv.php?file=import.csv&fields=pagetitle,price,old_price,article,content,parent&update=0&delimeter=,
              Получаю это.

              Пробовал в Хроме — создаются товары, но импортируется только цена. В мозиле вообще ничего не импортируется

              Что я делаю не так?
              1. Василий Наумкин 22 декабря 2013, 18:30 # ↑ ↓ 0
                Попробуй использовать другой разделить в файле. Запятая — это очень распространённый символ.
                1. Роман 22 декабря 2013, 18:59 # ↑ ↓ 0
                  Да, вы правы. Изменил, на; — все заработало, все импортируется. Только шаблон главной страницы почему то применяется.
                  Все равно ошибка появляется
                  [2013-12-22 18:46:07] (ERROR @ /core/components/minishop2/import/csv.php)
                  
                  Error 42S22 executing statement: 
                  Array
                  (
                      [0] => 42S22
                      [1] => 1054
                      [2] => Unknown column 'Data.' in 'where clause'
                  )
                  Что это означает?
                  И можете объяснить как картинки загружать?
                  Я так понял, в файле делаем несколько колонок gallery (если картинок несколько), в которые имена картинок вставляем. А сами картинки куда заливать?
                  1. Василий Наумкин 22 декабря 2013, 19:02 # ↑ ↓ 0
                    По ошибке нужно смотреть с debug, какой запрос там формируется и почему.

                    Картинки нужно предварительно залить на сервер и пути в файле указать к ним от корня сайта.
                    1. Роман 22 декабря 2013, 19:11 # ↑ ↓ 0
                      Вот с debug запустил:
                      [2013-12-22 19:07:07] (INFO @ /core/components/minishop2/import/csv.php)
                      
                      Trying to set time limit = 600 sec: done
                      [2013-12-22 19:07:07] (INFO @ /core/components/minishop2/import/csv.php)
                      
                      Array with importing data: 
                      Array
                      (
                          [pagetitle] => Товар 1
                          [price] => 100
                          [old_price] => 100
                          [article] => 200
                          [content] => Описание1
                          [parent] => 16
                          [class_key] => msProduct
                          [context_key] => web
                          [tvs] => 
                      )
                      [2013-12-22 19:07:07] (INFO @ /core/components/minishop2/import/csv.php)
                      
                      SQL query for check for duplicate: 
                      SELECT msProduct.id FROM `modx_site_content` AS `msProduct` JOIN `modx_ms2_products` `Data` ON msProduct.id = Data.id WHERE `Data`.`` IS NULL 
                      [2013-12-22 19:07:07] (ERROR @ /core/components/minishop2/import/csv.php)
                      
                      Error 42S22 executing statement: 
                      Array
                      (
                          [0] => 42S22
                          [1] => 1054
                          [2] => Unknown column 'Data.' in 'where clause'
                      )
                      [2013-12-22 19:07:07] (INFO @ /core/components/minishop2/import/csv.php)
                      
                      Successful create: 
                      Array
                      (
                          [id] => 74
                      )
                      [2013-12-22 19:07:07] (INFO @ /core/components/minishop2/import/csv.php)
                      
                      You in debug mode, so we process only 1 row. Time: 0.1862400 s
                      По картинкам понял, Спасибо!
                      А шаблон главной почему применяется?
                      1. Василий Наумкин 22 декабря 2013, 19:44 # ↑ ↓ 0
                        Так, ошибка потому, что нет ключа для определения дубликатов — нужно указать &key=article, например. Поправлю, чтобы требовалось обязательно.

                        Шаблон применяется «по умолчанию», так как ты не указал его в файле. Добавь в файл поле template и пропиши туда нужный id.

              2. Свистунов Андрей 23 декабря 2013, 21:58 # ↓ 0
                А на импорте 5000 товаров, к примеру, не отвалится скрипт по timeout, например на таком хостинге как timeweb?
                1. Василий Наумкин 23 декабря 2013, 22:05 # ↑ ↓ 0
                  Он умеет работать через консоль, а там нет таймаутов.
                  1. Свистунов Андрей 23 декабря 2013, 22:54 # ↑ ↓ 0
                    Я возможно что то путаю, но таймвеб вроде как рубит скрипт запущенный в консоле через 30 сек. И игнорирует все попытки это время увеличить через команды php
                    Я просто свой парсер написал для минишопа2 правда для xml. Пришлось написать bash скрипт который в цикле запускает php для обработки одной записи.
                    1. Евгений Ишкинин 26 марта 2014, 03:37 # ↑ ↓ +1
                      А вы не могли бы поделиться bash скриптом и парсером? Просто мне в скором времени придётся импортировать базу в 10 000 товаров =))) Хотел бы использовать их в качестве примера.
                2. Виталий Киреев 10 января 2014, 13:23 # ↓ 0
                  while (($csv = fgetcsv($handle, 1000, $delimeter)) !== false) {
                  А почему такая маленькая длина csv-строки — 1000? Контент не весь влезает и импорт падает, т.к. отрезаются еще поля. Длину, наверно, тоже параметром нужно.
                  1. Василий Наумкин 10 января 2014, 14:03 # ↑ ↓ 0
                    Обновись — уже поправлено!
                  2. Женёк 12 января 2014, 12:05 # ↓ 0
                    «key — если включено обновление, обязательно нужно указать ключ товара, по которому определяется его уникальность. Например «article».» — ключом может быть tv товара?
                    Если указать tv, то товары новые создаются, а не обновляются.
                    1. Василий Наумкин 12 января 2014, 13:26 # ↑ ↓ 0
                      Нет, ТВ не может быть уникальным полем товара.
                      1. Женёк 12 января 2014, 19:58 # ↑ ↓ 0
                        Спасибо! Буду иметь в виду, а то обновил по tv — запарился удалять дубли.

                        И еще возник вопросик:
                        Как удалить сразу все товары (или часть), например 3000 шт.?
                        У меня какой то слабый хостинг, при удалении ~ 100 шт. все падает, большая нагрузка на cp.
                        Удалял строки в бд — но на сайте все по прежнему отображается.
                        1. Василий Наумкин 12 января 2014, 20:36 # ↑ ↓ 0
                          Проще всего — через БД, таблица modx_site_content

                          Еще не забудь почистить таблицу со значениями ТВ, это modx_tmplvars_contentvalues.
                    2. Мордынский Николай 12 января 2014, 12:44 # ↓ 0
                      По чему то директории с изображениями при импорте создаются в корне сайта.
                      И проблема с импортом текстовых полей на русском — их не подтянуть корректно, подозреваю что проблема в файле импорта либо в моих руках)) — если проблема с кодировкой то в полученных кракозябах попадается (delimetr) и сыпет ошибками.
                      1. Василий Наумкин 12 января 2014, 13:27 # ↑ ↓ 0
                        Потому что ты не указал source и картинки импортируются в дефолтный источник файлов.

                        Проблема кодировок — это всегда проблема хостинга.
                        1. Пашкович Дмитрий 24 января 2014, 14:00 # ↑ ↓ 0
                          А если у меня указан Источник файлов по умолчанию — 2 (ms2_product_source_default), но картинки все равно грузятся прямо в корень, отдельными папками. В чем проблема?
                      2. Виталий Киреев 13 января 2014, 08:12 # ↓ 0
                        А скрипт находится в папке core из-за проверки прав доступа? То есть я написал скрипт-обертку с установкой нужных параметров и сохранил его в доступной извне подпапке assets. Но получается права на создание ресурсов есть, только если я залогинен в админке, а без этого permission denied. Использовал там простую http-авторизацию, но видимо надо логинить пользователя. Или есть другие варианты (не CLI)?
                        1. Василий Наумкин 13 января 2014, 08:14 # ↑ ↓ 0
                          Ты же создаешь товары через процессоры, для этого нужно иметь разрешение msproduct_save.

                          Добавь авторизацию под нужным юзером.
                        2. Дмитрий Крахмалев 21 января 2014, 14:16 # ↓ 0
                          А как можно оформить импорт, если помимо обычных полей еще используются таблица с характеристиками, которая на modx реализованна в виде MIGX. Или допустим импорт товара у которого несколько изображений.
                          1. Мордынский Николай 21 января 2014, 22:57 # ↑ ↓ 0
                            миг х этт теже самые тв тебе надо формировать тв самому из полученных параметров, а несколько изображений подтягиваются указанием иамени поля в запросе как gallery,gallery
                            в csv это будет соответствовать imgurl1;imgurl2 — локальные пути до картинок.
                            Я к примеру просто скопировал папку состарого сайта с изображениями и указываю пути к оригиналам и все подтягивается
                          2. Пашкович Дмитрий 24 января 2014, 14:40 # ↓ +1
                            А если у меня указан Источник файлов по умолчанию — 2 (ms2_product_source_default), но картинки все равно грузятся прямо в корень, отдельными папками. В чем проблема?
                            1. Leo Zung 30 января 2014, 23:18 # ↓ 0
                              Всем привет!

                              Есть магазин, в связке —джумла + virtuemart с авто синхронизацией каталога поставщика, формирует весь контент файл (http://www.site.ru/catalog.htm) с сервера поставщика. Возможно ли реализовать подобное в miniShop2?
                              С корня нашего сайта cron периодически запускает файл, и дальше видимо происходит парсинг /.../htdocs/import/index.php

                              <?php<?
                              
                              
                              $catalog_page_sourse=file_get_contents("http://site.ru/catalog.htm");
                              
                              //echo $catalog_page_sourse;
                              
                              
                              //phpinfo();
                              
                              
                              ?>
                              1. Pavel 03 февраля 2014, 14:25 # ↓ 0
                                А можно ли как то проигнорить одну колонку в csv файле?
                                1. Pavel 03 февраля 2014, 16:35 # ↑ ↓ 0
                                  хм
                                2. Pavel 03 февраля 2014, 16:40 # ↓ 0
                                  что не так, не пойму: к примеру такой файлик: dl.dropboxusercontent.com/u/59666091/03_02_20140.csv

                                  в урле пишу:

                                  **/modx/core/components/minishop2/import/csv.php?file=03_02_20140.csv&fields=gallery,pagetitle,article,tv1,tv2,popular,tv3,introtext,content,price,tv4,tv5&update=1&key=pagetitle&debug=1&delimeter=|

                                  пробовал и просто левые колонки писать, и просто ,,

                                  в итоге допустим вижу:

                                  [2014-02-03 16:32:38] (INFO @ /denwer/modx/core/components/minishop2/import/csv.php)
                                  
                                  Trying to set time limit = 600 sec: done
                                  [2014-02-03 16:32:38] (INFO @ /denwer/modx/core/components/minishop2/import/csv.php)
                                  
                                  Raw data for import: 
                                  Array
                                  (
                                      [0] => kopia-wyciagarka-war_.jpg
                                      [1] => тестошапка
                                      [2] => 
                                      [3] => 
                                      [4] => 
                                      [5] => 
                                      [6] => 
                                      [7] => полеХ
                                      [8] => полеИ
                                      [9] => 555
                                      [10] => 0
                                      [11] => 0
                                      [12] =>  
                                  )
                                  [2014-02-03 16:32:38] (INFO @ /denwer/modx/core/components/minishop2/import/csv.php)
                                  
                                  Array with importing data: 
                                  Array
                                  (
                                      [pagetitle] => тестошапка
                                      [article] => 
                                      [tv1] => 
                                      [tv2] => 
                                      [popular] => 
                                      [tv3] => 
                                      [introtext] => полеХ
                                      [content] => полеИ
                                      [price] => 555
                                      [tv4] => 0
                                      [tv5] => 0
                                      [class_key] => msProduct
                                      [context_key] => web
                                      [tvs] => 1
                                  )
                                  [2014-02-03 16:32:38] (INFO @ /denwer/modx/core/components/minishop2/import/csv.php)
                                  
                                  SQL query for check for duplicate: 
                                  SELECT msProduct.id FROM `modx_site_content` AS `msProduct` JOIN `modx_ms2_products` `Data` ON msProduct.id = Data.id WHERE `msProduct`.`pagetitle` = 'тестошапка' 
                                  [2014-02-03 16:32:38] (INFO @ /denwer/modx/core/components/minishop2/import/csv.php)
                                  
                                  Successful create: 
                                  Array
                                  (
                                      [id] => 29
                                  )
                                  [2014-02-03 16:32:38] (INFO @ /denwer/modx/core/components/minishop2/import/csv.php)
                                  
                                  Importing images: 
                                  Array
                                  (
                                      [0] => kopia-wyciagarka-war_.jpg
                                  )
                                  [2014-02-03 16:32:38] (ERROR @ /denwer/modx/core/components/minishop2/import/csv.php)
                                  
                                  Could not import image "kopia-wyciagarka-war_.jpg" to gallery. File "Z:/denwer/www/denwer/modx/kopia-wyciagarka-war_.jpg" not found on server.
                                  [2014-02-03 16:32:38] (INFO @ /denwer/modx/core/components/minishop2/import/csv.php)
                                  
                                  You in debug mode, so we process only 1 row. Time: 1.6475351 s
                                  т.е. якобы импорт произведён, но в БД вижу только новую строку с id, не тайтла, ни контента — ничего, что я делаю не так?

                                  хотя допустим с таким:
                                  dl.dropboxusercontent.com/u/59666091/03_02_2014.csv вроде всё гуд, но только для первой строки, где в коде символ строки можно найти? $delimeter = @$_REQUEST['delimeter']; — это для ячеек, а для строки?

                                  1. Pavel 03 февраля 2014, 17:17 # ↑ ↓ 0
                                    [delete]
                                    хотя чего не портируются тайтлы и тд хз)
                                    1. Pavel 03 февраля 2014, 17:42 # ↑ ↓ 0
                                      всё, проблема решена — кодировка и правильный csv хорошая вещь )
                                      debug=1 ограничивает кстати до одной записи, не сразу вник в написанное Василием ))
                                      1. Василий Наумкин 03 февраля 2014, 17:46 # ↑ ↓ 0
                                        Ура!
                                  2. Pavel 04 февраля 2014, 01:18 # ↓ 0
                                    а кстати, забыл спросить: можно ли как то сохранять картинки артикула не в корне, а в какой-либо подпапке? и как?
                                    1. Василий Наумкин 04 февраля 2014, 08:14 # ↑ ↓ 0
                                      Указывать source в csv или обновить MS2.
                                      1. Pavel 04 февраля 2014, 10:15 # ↑ ↓ 0
                                        «обновить MS2@»
                                        что именно вы имеете ввиду? в csv.php допустим для ключа gallery дописать там допустим «folder/».?
                                        1. Василий Наумкин 04 февраля 2014, 10:16 # ↑ ↓ 0
                                          Загрузить последнюю версию из репозитория, там в товары добавляется источник файлов по умолчанию.
                                          1. Pavel 04 февраля 2014, 11:30 # ↑ ↓ 0
                                            $image = str_replace('//', '/', MODX_BASE_PATH. $v);
                                            $file = str_replace('//', '/', MODX_BASE_PATH. $file);

                                            ?
                                            где там ещё сорс, что то не вижу(
                                            1. Василий Наумкин 04 февраля 2014, 11:35 # ↑ ↓ 0
                                              Ты прикалываешься, или что?

                                              Source — это id источника файлов товара, это свойство товара и его можно добавить в csv, чтобы было ясно, как этому товару загружать картинки.

                                              Это даже в заметке написано
                                              Если вы загружаете изображения в галерею, я рекомендую указать товарам id медиа источника source, чтобы не получить кучу картинок в корне сайта.
                                              Кто бы читал?
                                              1. Pavel 04 февраля 2014, 11:40 # ↑ ↓ 0
                                                на разных языках разговариваем, что к чему — не понял

                                                есть в csv колонка с именем файла, в корне есть все эти файлы (только для импорта, потом их удаляю)
                                                в итоге в корне получаю кучу папок. " id медиа источника source" что это? дописать в каждом csv файле id = source? а в урле вызова скрипта, как обозвать эту колонку правильно?
                                                1. Василий Наумкин 04 февраля 2014, 11:43 # ↑ ↓ 0
                                                  Я не могу с тобой разговаривать больше, думай сам.
                                                  1. Pavel 04 февраля 2014, 11:48 # ↑ ↓ -10
                                                    причина?

                                                    сходи на stackoverflow, там наверное вообще улетишь от количества тупых(по твоему мнению) вопросов?

                                                    с тобой реально — ну невозможно разговаривать, ты такого уже высокого о себе мнения…

                                                    ну не хочешь помогать, ну не помогай, просто проигнорь, нет же, надо ляпнуть гадость

                                                    думать буду сам, и придумаю, и нафиг больше ничего у тебя не спрошу, господин задратыйвверх нос.

                                                    ты думаешь что создал офигенную документацию? нет!

                                                    И что ты мне на это скажешь? Опять, что я «дурак», читать лень-влом?
                                                    1. Василий Наумкин 04 февраля 2014, 11:51 # ↑ ↓ +1
                                                      Пишу бесплатные компоненты, пишу документацию к ним, отвечаю на вопросы — один хер найдётся какой-нибудь дурачок, который ничего не понял и виноват в этом я.

                                                      Включать мозги нужно, хоть иногда. Поменьше спрашивать, побольше думать и эксперементировать.

                                                      Если тебе не нравится, как я общаюсь — никто не заставляет. Будь здоров, Паша.
                                                      1. Wassi Wassinen 04 февраля 2014, 14:14 # ↑ ↓ +1
                                                        Сделай комменты с минусам серыми. И не придется никого банить. :)
                                                        1. Мордынский Николай 04 февраля 2014, 16:20 # ↑ ↓ 0
                                                          Василий, народ пробегает список параметров с точечками и дальше не читает — добавь источник в li список вопросы отпадут.
                                                          1. Василий Наумкин 04 февраля 2014, 16:23 # ↑ ↓ +1
                                                            В последней версии MS2 источник по умолчанию сам добавляется, в процессоре.

                                                            Нужно просто обновить компонент.
                                                            1. Василий Наумкин 04 февраля 2014, 16:25 # ↑ ↓ +1
                                                              Еще надежнее просто глаза закрыть или вопросы не читать.

                                                              Меня если спрашивают — я отвечаю, как умею. Игнорировать вопросы на собственном сайте как минимум странно.
                                                            2. Мордынский Николай 04 февраля 2014, 16:13 # ↑ ↓ 0
                                                              Вопрос про сор в коментах не раз всплывал и даже в заметке сказано что переменную sorce = 2 надо поставить. Если невнимательно читаешь не фиг волнугнать
                                                          2. Chero 04 февраля 2014, 13:33 # ↑ ↓ +1
                                                            к сожалению, ни разу не работал с минишоп, но подозреваю, что «id источника файлов товара» могут быть в закладке инструменты-> источники файлов.
                                                            могу ошибаться правда, но провеьте по документации
                                                            1. Мордынский Николай 04 февраля 2014, 16:17 # ↑ ↓ 0
                                                              ДА просто в адресной строке браузера при вызове csv.php
                                                              csv.php ? source=2
                                                              Все счасьте
                                              2. MishMash 04 февраля 2014, 17:50 # ↓ 0
                                                Василий, у меня не совсем вопрос, а скорее ремарка. Вы сделали замечательный компонент магазина miniShop2, но вот с импортом у меня возникли серьезные затруднения(я не программист). Мне кажется платный допиленный модуль импорта-экспорта(типа как в шопкипере) будет разумным решением и освободит Вас от многочисленных вопросов.

                                                P.S. Буду весьма благодарен если найдутся люди готовые помочь мне сделать нормальный импорт и интеграцию свойств товара за вознаграждение. mishmashdash[dog]gmail.com
                                                1. Василий Наумкин 04 февраля 2014, 17:54 # ↑ ↓ 0
                                                  К сожалению, я всего один и физически не могу сделать все нужные на свете компоненты.

                                                  Экспорт\импорт давно в планах, но пока никак.
                                                  1. Воеводский Михаил 05 февраля 2014, 10:15 # ↑ ↓ 0
                                                    Василий, сколько трудочасов тебе необходимо для реализации импорта? Спрашиваю для справки — знать, на что рассчитывать, если понадобится.
                                                    1. Василий Наумкин 05 февраля 2014, 10:28 # ↑ ↓ 0
                                                      Не знаю, пока занят другими делами.

                                                      И даже приблизительно не знаю.
                                                      1. Воеводский Михаил 05 февраля 2014, 10:33 # ↑ ↓ 0
                                                        Ясно, спасибо за ответ. Если вдруг надумаешь — дай знать.
                                                    2. Саша Иващенко 23 августа 2014, 23:40 # ↑ ↓ 0
                                                      Знать бы приблизительно к когда такой пряник ждать) 7 месяцев уже жду )))
                                                  2. Евгений Кузнецов 08 марта 2014, 21:53 # ↓ 0
                                                    Я ни как не могу понять, как добавить в поле «color», оно же JSON типа и просто «белый» не добавляется. Если добавлять через manager там получается что то вроде \\u0410\\u0430\\u0411\\u0431\\u0412
                                                    1. Александр 26 марта 2014, 08:54 # ↓ 0
                                                      Проблема с импортом, скорее всего некорректный csv, т.к. импортируется 1я строка, вторая импортируется неполностью и на этом все, никаких сообщений не выводится. Дебаг ничего не дает т.к. выполняется только 1 строка, а она импортируется без ошибок. Хотелось бы узнать каким образом создать csv файл, чтобы скрипт его корректно обработал.
                                                      1. Валера Кузаков 26 марта 2014, 09:12 # ↓ 0
                                                        Аналогичная проблема с импортом:

                                                        Первый товар импортируется, второй уже без картинки, последующие не импортируются вообще, скрипт не выдает никаких сообщений. Как быть с проблемой?

                                                        Так запускаем скрипт — sajo.ru/core/components/minishop2/import/csv.php?file=core/import/vigruzka.csv&fields=price,pagetitle,vendor,article,size,inset,technic,kanva,kanva_color,picture_type,prod_type,gallery,availability,parent,template,base,alias,published&update=0&key=alias&debug=0&delimeter=|

                                                        Вот лог из режима debug:
                                                        [2014-03-15 17:51:12] (INFO @ /core/components/minishop2/import/csv.php)
                                                        
                                                        Trying to set time limit = 600 sec: done
                                                        [2014-03-15 17:51:12] (INFO @ /core/components/minishop2/import/csv.php)
                                                        
                                                        Raw data for import: 
                                                        Array
                                                        (
                                                            [0] => 1250
                                                            [1] => Преподобный Серафим Саровский
                                                            [2] => 9
                                                            [3] => Р’-173
                                                            [4] => 20С…24
                                                            [5] => Канва(лён с нанесенным рисунком) для бисерной вышивки, чешский бисер, игла для бисера, схема и описание к работе
                                                            [6] => Вышивка бисером
                                                            [7] => лён с нанесенным рисунком
                                                            [8] => Лен
                                                            [9] => Р˜РєРѕРЅР°
                                                            [10] => Набор для вышивания иконы бисером
                                                            [11] => core/import/img/9_ik.jpg
                                                            [12] => 1
                                                            [13] => 87
                                                            [14] => 12
                                                            [15] =>  
                                                            [16] => Prepodobnyj_Serafim_Sarovskij_9
                                                            [17] => 1
                                                        )
                                                        [2014-03-15 17:51:12] (INFO @ /core/components/minishop2/import/csv.php)
                                                        
                                                        Array with importing data: 
                                                        Array
                                                        (
                                                            [price] => 1250
                                                            [pagetitle] => Преподобный Серафим Саровский
                                                            [vendor] => 9
                                                            [article] => Р’-173
                                                            [size] => 20С…24
                                                            [inset] => Канва(лён с нанесенным рисунком) для бисерной вышивки, чешский бисер, игла для бисера, схема и описание к работе
                                                            [technic] => Вышивка бисером
                                                            [kanva] => лён с нанесенным рисунком
                                                            [kanva_color] => Лен
                                                            [picture_type] => Р˜РєРѕРЅР°
                                                            [prod_type] => Набор для вышивания иконы бисером
                                                            [availability] => 1
                                                            [parent] => 87
                                                            [template] => 12
                                                            [base] =>  
                                                            [alias] => Prepodobnyj_Serafim_Sarovskij_9
                                                            [published] => 1
                                                            [class_key] => msProduct
                                                            [context_key] => hob
                                                            [tvs] => 
                                                        )
                                                        [2014-03-15 17:51:12] (INFO @ /core/components/minishop2/import/csv.php)
                                                        
                                                        SELECT msProduct.id FROM `modx_site_content` AS `msProduct` JOIN `modx_ms2_products` `Data` ON msProduct.id = Data.id WHERE `msProduct`.`alias` = :0 
                                                        Array
                                                        (
                                                            [/:0\b/] => 'Prepodobnyj_Serafim_Sarovskij_9'
                                                        )
                                                        [2014-03-15 17:51:12] (INFO @ /core/components/minishop2/import/csv.php)
                                                        
                                                        SQL query for check for duplicate: 
                                                        SELECT msProduct.id FROM `modx_site_content` AS `msProduct` JOIN `modx_ms2_products` `Data` ON msProduct.id = Data.id WHERE `msProduct`.`alias` = 'Prepodobnyj_Serafim_Sarovskij_9' 
                                                        [2014-03-15 17:51:12] (INFO @ /core/components/minishop2/import/csv.php)
                                                        
                                                        DELETE FROM `modx_register_messages` WHERE  ( `modx_register_messages`.`topic` = :0 AND `modx_register_messages`.`id` = :1 )  
                                                        Array
                                                        (
                                                            [/:0\b/] => 1
                                                            [/:1\b/] => 'f76a89f0cb91bc419542ce9fa43902dc'
                                                        )
                                                        [2014-03-15 17:51:12] (INFO @ /core/components/minishop2/import/csv.php)
                                                        
                                                        Successful create: 
                                                        Array
                                                        (
                                                            [id] => 612
                                                        )
                                                        [2014-03-15 17:51:12] (INFO @ /core/components/minishop2/import/csv.php)
                                                        
                                                        Importing images: 
                                                        Array
                                                        (
                                                            [0] => core/import/img/9_ik.jpg
                                                        )
                                                        [2014-03-15 17:51:13] (INFO @ /core/components/minishop2/import/csv.php)
                                                        
                                                        Successful upload  "core/import/img/9_ik.jpg": 
                                                        Array
                                                        (
                                                        )
                                                        [2014-03-15 17:51:13] (INFO @ /core/components/minishop2/import/csv.php)
                                                        1. Евгений Ишкинин 26 марта 2014, 14:50 # ↑ ↓ 0
                                                          А у вас с кодировкой csv-файла всё в порядке?
                                                          1. Александр 26 марта 2014, 19:28 # ↑ ↓ 0
                                                            Да, UTF-8, это в выводе дебага кракозябры, зато внутри сайта все хорошо, если не менять на UTF-8, то в логах дебага все в порядке, зато в поля товара ничего не заносится. Проблема именно с построчным переходом.
                                                          2. Василий Наумкин 27 марта 2014, 07:31 # ↑ ↓ 0
                                                            Сделай тоже самое на test.modx.pro — я посмотрю, что не так.
                                                          3. Максим Степанов 27 марта 2014, 07:06 # ↓ 0
                                                            Здравствуйте, если не ошибаюсь после обновления MS2 перестал работать импорт. Запускаю через браузер
                                                            http://сайт.ru/core/components/minishop2/import/csv.php?file=import/import.csv&fields=article,pagetitle,price,parent&update=0&key=pagetitle&debug=1&delimeter=|
                                                            CSV файл выглядит так:

                                                            sd|овсяная каша на молоке с фруктами|120|4
                                                            f|сырники с карамельным соусом|100|4
                                                            g|сырные палочки в сухарях|150|4
                                                            h|варенники домашние с картошкой|150|4
                                                            j|варенники дмашние с капустой|170|4
                                                            k|варенники с творогом|170|4
                                                            l|омлет с ветчиной и сыром|160|4
                                                            t|омлет с томатами и курицей|170|4
                                                            y|омлет классический|120|4
                                                            u|омлет с куриной печенью|150|4
                                                            i|яичница глазунья с ветчиной и овощами|130|4
                                                            импортируется только первый товар. все остальные нет. Подскажите или может я что то не так делаю?
                                                            1. Василий Наумкин 27 марта 2014, 07:26 # ↑ ↓ 0
                                                              &debug=1
                                                              debug — Режим отладки. Если = 1, то скрипт подробно обрабатывает первую строку файла и выходит.
                                                            2. Игорь 18 апреля 2014, 14:40 # ↓ 0
                                                              Здравствуйте!
                                                              Можно ли при импорте указать к какой категории относится каждый товар или хотя бы все импортируемые товары?
                                                              Указав id категории или еще как-нибудь…
                                                              1. Игорь 18 апреля 2014, 14:49 # ↑ ↓ 0
                                                                Нашел в базе данных — parent в таблице modx_site_content
                                                              2. Владимир 14 мая 2014, 14:24 # ↓ 0
                                                                Доброго дня!
                                                                Можно ли указать товарам поле content_type со своим типом содержимого?
                                                                Хочу назначить артикул в качестве алиаса, и формировать адрес без .html
                                                                (подозреваю что можно, но, надеюсь, что за спрос не побьють)
                                                                1. Владимир 14 мая 2014, 18:50 # ↑ ↓ 0
                                                                  content_type импортируется прекрасно. Вопрос снят.
                                                                  Василий создал отменный скрипт!
                                                                2. Pashkevich Aleksandr 16 мая 2014, 11:51 # ↓ 0
                                                                  Сегодня столкнулся с одной проблемой во время импорта.
                                                                  Файлы пробовал грузить и в UTF-8 и в ANSI, и в KOI8-R(ну мало ли)
                                                                  И все русские символы терялись. Заглянул в исходники, понял что теряется на вот этом этапе
                                                                  while (($csv = fgetcsv($handle, 0, $delimeter)) !== false) {
                                                                  И вспомнил, что уже когда-то сталкивался с подобной проблемой. И с чем связана она я не помню.
                                                                  И пришлось заменить на такую конструкцию
                                                                  while ($contents_csv = fgets($handle) )
                                                                  {
                                                                  $csv = explode($delimeter, $contents_csv);
                                                                  Оно выглядит не так красиво, но зато русские символы не теряются.
                                                                  Так же я протестировал вот таким образом, на файле в 16000 строк.
                                                                  $file='file.csv';
                                                                  $handle = fopen($file, "r");
                                                                  $delimeter = ';';
                                                                  $start = microtime(true);
                                                                  while (($csv = fgetcsv($handle, 0, $delimeter)) !== false) {
                                                                  }
                                                                  $time = microtime(true) - $start;
                                                                  printf('Время работы fgetcsv %.4F сек.
                                                                  ', $time);
                                                                  fclose($handle);
                                                                  
                                                                  
                                                                  $handle = fopen($file, "r");
                                                                  $start = microtime(true);
                                                                  while ($contents_csv = fgets($handle) )
                                                                  {
                                                                  $csv = explode($delimeter, $contents_csv);
                                                                  }
                                                                  $time = microtime(true) - $start;
                                                                  printf('Время работы fgets %.4F сек.', $time);
                                                                  fclose($handle);
                                                                  Результаты удивили
                                                                  Время работы fgetcsv 1.0334 сек.
                                                                  Время работы fgets 0.1240 сек.
                                                                  Это так просто информация, ну и может предложение заменить конструкцию немного.
                                                                  1. Богдан 29 июля 2014, 23:07 # ↓ 0
                                                                    В настройках minishop2, параметр ms2_product_id_as_alias установил в 1. Но скрипт все равно пытаеться генерировать URI исходя из поля pagetitle. Скрипт не учитывает значение ms2_product_id_as_alias?
                                                                    1. Борис 28 августа 2014, 15:04 # ↓ 0
                                                                      Тестирую импорт из core/components/minishop2/import/csv.php, выдает 403 ошибку.
                                                                      Перетащил в assets/import/csv.php изменив в файле строку к конфигу:
                                                                      require_once MODX_BASE_PATH . 'core/config/config.inc.php';
                                                                      Файл с полями и картинки в assets/import/. В итоге «белая страница» импорта. Сам запрос:
                                                                      assets/import/csv.php?file=assets/import/1.csv&fields=parent,article,pagetitle,gallery,price,source&update=1&key=article
                                                                      параметр &debug=1 ничего также не показывает. Подскажите где копать?
                                                                      1. Андрей Рябченко 31 августа 2014, 16:58 # ↓ 0
                                                                        При импорте, в режиме обновления, скрипт стирает все значения TV параметров товара.
                                                                        Есть такие параметры, которые выбираются вручную в админке и не хотелось бы затирать их при импорте.
                                                                        Подскажите как указать TV для игнорирования?
                                                                        1. Дмитрий 11 сентября 2014, 18:10 # ↓ 0
                                                                          Добрый вечер, а можете подсказать куда импортируются товары? просто сделал все по инструкции… получил вот такое сообщение
                                                                          Total rows:	337
                                                                          Created:	336
                                                                          Updated:	1
                                                                          захожу в админку смотрю что там нет не каких изменений, как создавал 2 товара вручную так они и остались.
                                                                          Подскажите в чем дело.
                                                                          1. Володя 12 сентября 2014, 01:03 # ↑ ↓ 0
                                                                            неверно указал параметр parent скорее всего…
                                                                            1. Дмитрий 12 сентября 2014, 13:05 # ↑ ↓ 0
                                                                              Хорошо что про parent сказали… вот теперь есть еще вопросы как я могу указать parent?
                                                                              Лично что мне в голову пришло.
                                                                              1) Редактируем csv файл, скажем добавляем колонку в начало с указанием id parent… В принципе если все импортировать в 1 каталог то это займет секунд 20 даже если товара будет 5000
                                                                              2) Заходим в phpMyAdmin и находим таблицу (префикс который вы указывали при установки)_site_content.
                                                                              и заменяем там значение parent наших товаров… Из минусов лично я не нашёл как массово редактировать колонку. В итоге может быть все довольно долго.

                                                                              И подскажите есть еще какие способы указать parent?
                                                                              1) Например изменить что то в csv.php
                                                                              2) В
                                                                              http://mysite.com/core/components/minishop2/import/csv.php?file=file.csv&fields=article,pagetitle,tv1,size,size,gallery,gallery,tv3&update=1&key=article&debug=1&delimeter=|
                                                                              указать самому вроде такого
                                                                              file.csv&fields=parent=5,article,size.......
                                                                              возможно так сделать? чтоб parent присваивалось значение которые мы указали, а дальше все по сценарию бралось из таблицы…
                                                                              Подскажите если не трудно, а то я только Верстальщик, и с программированием пока совсем не дружу.
                                                                              1. Володя 12 сентября 2014, 13:16 # ↑ ↓ 0
                                                                                или в файле импорта указывать или можно в самом php указать
                                                                                // Set default values
                                                                                if (empty($data['parent'])) {$data['parent'] = '2';}
                                                                          2. Вадим Раевский 19 сентября 2014, 15:25 # ↓ 0
                                                                            Добрый день!

                                                                            Столкнулся с проблемой. Через адресную строку файл импортируется нормально. А через консоль не хочет. Выдается ошибка
                                                                            <b>Parse error</b>:  syntax error, unexpected '/' in <b>/path/core/components/console/processors/exec.class.php(20) : eval()'d code</b> on line <b>1</b><br />
                                                                            Вызывал так:
                                                                            php ./assets/import/csv.php "/assets/import/file.csv" "parent,pagetitle,longtitle,price,template,tv2,gallery,size,color,content,source,made_in,vendor,published" 1 "pagetitle" 1 "|"
                                                                            В импортируемом файле 7050 позиций. Ngnix хостера выдает 504 ошибку через 400 позиций. Понимаю что файл можно разбить на части, но при обновлении цен поставщика это будет не удобно. Кто-то находил решение такой проблемы?

                                                                            Спасибо
                                                                            1. Василий Наумкин 19 сентября 2014, 15:28 # ↑ ↓ 0
                                                                              Этот вопрос нужно адресовать автору дополнения Console. И честно говоря, я не понимаю, чем запуск через админку отличается от вызова скрипта из браузера — с точки зрения таймаута nginx это одно и то же.

                                                                              Нужно делать импорт из нормальной консоли сервера, куда обычно можно попасть через ssh.
                                                                            2. Евгений 25 сентября 2014, 16:56 # ↓ 0
                                                                              Спасибо за шикарный скрипт. А можно ли как-то добавить возможность загрузки картинок не только с сервера, но и с любого другого сайта?
                                                                              1. Василий Наумкин 25 сентября 2014, 17:32 # ↑ ↓ 0
                                                                                Нет, никак.

                                                                                Тут много сложностей и низкая скорость работы.
                                                                              2. Василий Столейков 04 октября 2014, 00:17 # ↓ 0
                                                                                Или мне кажется, или скрипт начал обрабатывать по 2 товара за раз? Раньше он всё сразу загружал, за один раз… А сейчас уже замучился обновлять постоянно…
                                                                                Или это связано с MODx 2.3? (сейчас импортирую на него).
                                                                                1. Володя 04 октября 2014, 10:01 # ↑ ↓ 0
                                                                                  скорее всего проблемы ваши локальные, скриптом пользовался совсем недавно и на 2.3 — все нормально. Да и не обновлялся он уже 4 месяца. joxi.ru/34wvVIwyTJAcZ2TDQJ8
                                                                                2. Женёк 06 октября 2014, 23:19 # ↓ 0
                                                                                  Не могу обновить картинки по &update=1. У товаров, через один уже загружены картинки импортом, нужно дозалить остальные.
                                                                                  С debug, получаю это:
                                                                                  [2014-10-06 23:07:45] (INFO @ /core/components/minishop2/import/csv.php)
                                                                                  
                                                                                  Trying to set time limit = 600 sec: done
                                                                                  [2014-10-06 23:07:45] (INFO @ /core/components/minishop2/import/csv.php)
                                                                                  
                                                                                  Raw data for import: 
                                                                                  Array
                                                                                  (
                                                                                      [0] => 3816
                                                                                      [1] => importimg/bison-gold.jpg
                                                                                      [2] => 2
                                                                                  )
                                                                                  [2014-10-06 23:07:45] (INFO @ /core/components/minishop2/import/csv.php)
                                                                                  
                                                                                  Array with importing data: 
                                                                                  Array
                                                                                  (
                                                                                      [article] => 3816
                                                                                      [source] => 2
                                                                                      [class_key] => msProduct
                                                                                      [context_key] => web
                                                                                      [tvs] => 
                                                                                  )
                                                                                  [2014-10-06 23:07:45] (INFO @ /core/components/minishop2/import/csv.php)
                                                                                  
                                                                                  SELECT msProduct.id FROM `modx_site_content` AS `msProduct` JOIN `modx_ms2_products` `Data` ON msProduct.id = Data.id WHERE `Data`.`article` = :0 
                                                                                  Array
                                                                                  (
                                                                                      [/:0\b/] => '3816'
                                                                                  )
                                                                                  [2014-10-06 23:07:45] (INFO @ /core/components/minishop2/import/csv.php)
                                                                                  
                                                                                  SQL query for check for duplicate: 
                                                                                  SELECT msProduct.id FROM `modx_site_content` AS `msProduct` JOIN `modx_ms2_products` `Data` ON msProduct.id = Data.id WHERE `Data`.`article` = '3816' 
                                                                                  [2014-10-06 23:07:45] (INFO @ /core/components/minishop2/import/csv.php)
                                                                                  
                                                                                  Key article = 3816 has duplicate.
                                                                                  [2014-10-06 23:07:45] (ERROR @ /core/components/minishop2/import/csv.php)
                                                                                  
                                                                                  Error on update: 
                                                                                  Array
                                                                                  (
                                                                                      [0] => alias: field_required
                                                                                  )
                                                                                  [2014-10-06 23:07:45] (INFO @ /core/components/minishop2/import/csv.php)
                                                                                  
                                                                                  You in debug mode, so we process only 1 row. Time: 0.1621501 s
                                                                                  В csv файле 3 колонки: article,gallery,sourse

                                                                                  До этого, много раз импортировал на др. сайтах, а здесь затык.

                                                                                  Подскажите, в чем проблема может быть?
                                                                                  1. Игорь Улькин 29 октября 2014, 16:15 # ↓ 0
                                                                                    В свойствах товара есть дерево категорий которые могу быть дополнительными «родителями» если проставить галочки вручную. MySQL знаю увы пока поверхностно, не нашел там подсказки.

                                                                                    Хочется проставлять эти галочки в CSV. Полагаю как то так?
                                                                                    tree, tree,...(неизвестное название поля)
                                                                                    1, 16,… (ID нужной категории)
                                                                                    1. Александр 02 ноября 2014, 20:14 # ↓ 0
                                                                                      Прошу прошения на столь глупый вопрос. Только начинаю изучать minishop.

                                                                                      Какая должна быть минимальная структура csv для импорта? А то я не как не могу понять как правильно составить csv

                                                                                      Заранее спасибо!
                                                                                      1. start.exe 13 ноября 2014, 11:11 # ↓ 0
                                                                                        Смотрю, вроде у всех импорт работает, хотя было много вопросов, ответы на которые можно было найти, включив логическое мышление.
                                                                                        Я-то сначала тож обрадовался, понял как контекст указать и тв в виде чекбоксов и родителей, шаблон и показ в дереве. Разобрался с кодировкой, разделителями, спецсимволами. Ну, думаю, ляпота…
                                                                                        Попробовал, вроде работает. А когда дошло дело до реального импорта, то дальше второй строки он не идет.

                                                                                        Подскажите, в чем проблемка?
                                                                                        Если debug=1 — всё норм.
                                                                                        При update=0 — приходится обовлять страницу столько раз, сколько строк в csv, отображается кол-во строк.
                                                                                        А при update=1 — вообще ничего не отображается. Но можно заметить, что импорт произошел и были использованы только две первые строчки, и усё…

                                                                                        CSV сделал простейший:
                                                                                        2;title1
                                                                                        2;title2
                                                                                        2;title3

                                                                                        мойсайт.ru/core/components/minishop2/import/csv.php?file=/import/items.csv&fields=parent,pagetitle&update=1&key=pagetitle&debug=0&delimeter=;

                                                                                        хотел опробовать всё тоже самое не тестовом хостинге от simpledream, но папка core там закрыта, а как выполнить импорт через консоль я так и не въехал, ибо вижу только php: command not found
                                                                                        1. start.exe 22 ноября 2014, 08:04 # ↑ ↓ 0
                                                                                          Моим любимым методом научного тыка выяснил, что скрипт импорта выполнял алгоритм только с одной строкой и затем останавливался при обновлении второго ресурса и всё из за используемого мной дополнения SimpleSearch, а именно при отслеживании плагином SimpleSearchIndexer события OnDocFormSave.
                                                                                          1. Василий Наумкин 22 ноября 2014, 09:56 # ↑ ↓ 0
                                                                                            Беда.
                                                                                            1. start.exe 22 ноября 2014, 10:16 # ↑ ↓ 0
                                                                                              Отчего ж беда? наоборот — щастие и радость, ведь сейчас всё работает.
                                                                                              У кого-то, возможно, такая же хрень будет, а он прочитает мои буковки и на него просветление снизойдет.
                                                                                              1. Василий Наумкин 22 ноября 2014, 10:30 # ↑ ↓ 0
                                                                                                Беда, что не индексирует. У mSearch2, конечно, такой фигни нет.

                                                                                                В общем, молодец, что разобрался.
                                                                                        2. Юрий Брагин 24 ноября 2014, 07:20 # ↓ 0
                                                                                          Василий вот какой вопрос. Как при обновлении (update=1) менять правильно основную картинку?
                                                                                          1. Василий Наумкин 24 ноября 2014, 07:24 # ↑ ↓ 0
                                                                                            Думаю, что никак.

                                                                                            Основной картинкой становится первое изображение. Его через этот скрипт никак не заменишь.
                                                                                            1. Юрий Брагин 24 ноября 2014, 07:29 # ↑ ↓ 0
                                                                                              А если после обновления отдельным скриптом, куда подаются только главные картинки менять в msProducts?
                                                                                              1. Василий Наумкин 24 ноября 2014, 08:03 # ↑ ↓ 0
                                                                                                msProducts то здесь причем? Он только выводит то, что уже есть. Читай как работает галерея.

                                                                                                Основной становится первая картинка (поле rank), обновление проводит метод updateProductImage. То есть, тебе нужно сначала верно отсортировать картинки, а потом вызвать этот метод.
                                                                                          2. maslitto 27 ноября 2014, 12:20 # ↓ 0
                                                                                            а есть такой же для xml?
                                                                                            1. Mihan 02 декабря 2014, 22:11 # ↓ 0
                                                                                              Всем привет.

                                                                                              Подскажите, пожалуйста, почему может не работать импорт, если нет варнингов и эроров в логе.

                                                                                              Вот такой вывод: pastebin.com/n5squx3q

                                                                                              Прежде чем импортировать на живом сайте, решил попробовать на тестовом сайте. Но что-то никак не работает. Вызываю скрипт так: s640.h3.simpledream.ru/csv.php?file=import.csv&fields=article,parent,pagetitle,price,content&update=1&key=article&debug=1
                                                                                              Добавление новых комментариев отключено.